package com.yxw.live_vod_backend_boot.service;

import com.yxw.live_vod_backend_boot.dto.ReviewExamineDTO;
import com.yxw.live_vod_backend_boot.dto.ShopReviewDTO;
import com.yxw.live_vod_backend_boot.dto.ShopReviewQueryDTO;
import com.yxw.live_vod_backend_boot.vo.ShopReviewVO;
import com.yxw.live_vod_facade.dto.ShopAddDTO;
import com.yxw.live_vod_facade.dto.ShopExtendAddDTO;
import com.yxw.live_vod_facade.vo.ShopVO;
import com.yxw.yxnet_cd_center.common.dto.PageVO;
import com.yxw.yxnet_cd_center.common.utils.BaseResult;
import org.springframework.web.multipart.MultipartFile;

/**
 * 店铺审核管理Service接口
 *
 * @author xiexuxin
 * @date 2023-11-28
 */
public interface ShopReviewService {

    /**
     * 添加店铺审核
     * @param corporateCardFront 法人身份证正面照片
     * @param corporateCardReverse 法人身份证反面照片
     * @param corporateCardHand 法人手持身份证照片
     * @param shopAvatar 店铺头像
     * @param businessLicense 营业执照照片
     * @param addDTO
     * @return
     */
    ShopReviewVO addShopReview(MultipartFile corporateCardFront,MultipartFile corporateCardReverse, MultipartFile corporateCardHand, MultipartFile shopAvatar, MultipartFile businessLicense, ShopReviewDTO addDTO);
    /**
     * 修改店铺审核
     * @param corporateCardFront 法人身份证正面照片
     * @param corporateCardReverse 法人身份证反面照片
     * @param corporateCardHand 法人手持身份证照片
     * @param shopAvatar 店铺头像
     * @param businessLicense 营业执照照片
     * @param shopReviewId 店铺审核ID
     * @param updateDTO
     */
    void updateShopReview(MultipartFile corporateCardFront, MultipartFile corporateCardReverse, MultipartFile corporateCardHand, MultipartFile shopAvatar, MultipartFile businessLicense, Long shopReviewId,ShopReviewDTO updateDTO);

    /**
     * 根据id查询店铺审核数据详情
     * @param shopReviewId
     * @return
     */
    ShopReviewVO getShopReviewById(Long shopReviewId);

    /**
     * 根据店铺id查询店铺审核数据详情
     * @param shopId
     * @return
     */
    ShopReviewVO getShopReviewByShopId(Long shopId);

    /**
     * 获取店铺审核数据列表
     * @param queryDTO
     * @return
     */
    PageVO<ShopReviewVO> getShopReviewList(ShopReviewQueryDTO queryDTO);

    /**
     * 店铺具体审核
     * @param examineDTO
     * @return
     */
    BaseResult isShopReview(ReviewExamineDTO examineDTO);

    /**
     * 添加店铺
     * @param addDTO
     * @return
     */
    ShopVO addShop(ShopAddDTO addDTO);

    /**
     * 添加店铺扩展信息
     * @param addExtend
     */
    void addShopExtend(ShopExtendAddDTO addExtend);

    /**
     * 修改店铺状态
     * @param shopId
     * @param status
     */
    void updateShopStatus(Long shopId, Integer status);
}
